#include <iostream>

using namespace std;
typedef unsigned long NUM;

const NUM MAX_DEC = 10000;

int main()
{
	NUM result = 0, result_n = 0, div[MAX_DEC], mod[MAX_DEC];
	bool Break;

	for( NUM i=2; i<10000; i++)
	{
		Break = false;
		//cout << i << ": 0.";
		NUM n = 1, decimales = 0;

		do {
			n *= 10;
			div[decimales] = n / i;
			mod[decimales] = n %= i;
			//cout << div[decimales];

			for(NUM a=0; a<decimales; a++)
			{
				if(div[decimales] == div[a] && mod[decimales] == mod[a])
				{
					if(decimales-a > result_n)
					{
						result = i;
						result_n = decimales-a;

					}
					Break = true;
					break;
				}
			}
			if(Break) break;
		} while(n != 0 && ++decimales < MAX_DEC);
		//cout << endl;
	}

	cout << endl << result << ": " << result_n << endl;
	return 0;
}
// http://en.wikipedia.org/wiki/Recurring_decimal
// Full Reptend Prime: http://mathworld.wolfram.com/FullReptendPrime.htm
// solo haria falta calcular el ultimo numero primo, ya que 1/7 --> 7-1 decimales....asi para todos los numeros.
